Bicycle control system

ABSTRACT

A bicycle with an electric pedal assist motor capable of driving a chainring independent of cranks includes wheel speed sensors and crank cadence sensors. The wheel speed sensors and the crank cadence sensors measure wheel speed and crank cadence, respectively, and provide the measured wheel speed and crank cadence to controller of the bicycle. The controller activates motor overdrive based on the measured wheel speed and/or the measured crank cadence.

PRIORITY

This application claims the benefit of U.S. Provisional PatentApplication No. 62/806,301, filed on, which is hereby incorporated byreference in its entirety.

BACKGROUND 1. Field of the Disclosure

The present disclosure is generally directed to an electric bicycle, andmore particularly, to control of the electric bicycle.

2. Description of Related Art

A bicycle with a pedal assist electric motor (e.g., an electric bicycleor an ebike) may include wheel speed and crank speed sensors that may beused as inputs to automatic shifting algorithms for a transmission ofthe bicycle. One limitation of the automatic shifting algorithm for thetransmission of the bicycle is that shifting may only occur when thedrivetrain is moving (e.g., when a rider is pedaling).

The pedal assist motor may turn a driving chainring independent ofcranks of the bicycle. This aspect exists so that when the assist motoris active, the rider does not sense motor torque in the legs of therider if the rider slows a pedaling rate faster than the assist motormay react. In some ebike systems, this function is exploited as afeature in which the rider may be walking beside the ebike and may pusha button to enable the motor assist at a low speed to help push theebike up a steep incline without the cranks and pedals rotatingunsafely.

SUMMARY

In one example, a method for controlling one or more electricallypowered components of a bicycle includes identifying, by a processor incommunication with an electrically powered component of the one or moreelectrically powered components, sensor data. The sensor data identifiesa state of the bicycle. The method also includes determining, by theprocessor, a rider engagement status based on the identified sensordata, and stopping or preventing, by the processor, movement of theelectrically powered component based on the determined rider engagementstatus.

In one example, identifying the sensor data includes receiving, by theprocessor, orientation data from one or more orientation sensors of thebicycle. The method further includes determining, by the processor, anorientation of the bicycle based on the received orientation data.Determining the rider engagement status includes determining whether auser is riding the bicycle based on the determined orientation of thebicycle. Stopping or preventing movement of the electrically poweredcomponent based on the rider engagement status includes stopping orpreventing movement of the electrically powered component when thedetermined rider engagement status indicates the user is not riding thebicycle.

In one example, receiving orientation data from one or more orientationsensors of the bicycle includes receiving orientation data from at leastone accelerometer at a predetermined interval. Determining theorientation of the bicycle includes averaging a portion of the receivedorientation data and determining the orientation of the bicycle based onthe averaged portion of the received orientation data.

In one example, determining the rider engagement status based on theidentified sensor data includes determining whether the bicycle issubject to a predetermined deacceleration based on the identified sensordata.

In one example, the electrically powered component is an assist motor.stopping or preventing movement of the electrically powered componentincludes stopping or preventing movement of the assist motor when thedetermined rider engagement status indicates that the user is subject tothe predetermined deacceleration.

In one example, the electrically powered component is a firstelectrically powered component, and the one or more electrically poweredcomponents include a second electrically powered component. The firstelectrically powered component is an assist motor, and the secondelectrically powered component is a derailleur motor. The method furtherincludes stopping or preventing, by the processor, movement of thesecond electrically powered component based on the determined riderengagement status.

In one example, identifying the sensor data includes receiving bicycleorientation data from one or more orientation sensors of the bicycle,receiving wheel speed data from one or more wheel speed sensors of thebicycle, receiving crank speed data from one or more cadence sensors,receiving strain data from one or more strain gauges of the bicycle,receiving acceleration data from one or more accelerometers, one or moregyroscopes, or a combination thereof, or any combination thereof.

In one example, the wheel speed data includes first wheel speed data andsecond wheel speed data. Identifying the sensor data includes receivingthe first wheel speed data from a first wheel speed sensor. The receivedfirst wheel speed data represents a first wheel speed. The first wheelspeed is a wheel speed of a first wheel of the bicycle. Identifying thesensor data also includes receiving the second wheel speed data from asecond wheel speed sensor. The received second wheel speed datarepresents a second wheel speed. The second wheel speed is a wheel speedof a second wheel of the bicycle. Determining the rider engagementstatus includes comparing the first wheel speed data to the second wheelspeed data and determining the rider engagement status based on thecomparison.

In one example, comparing the first wheel speed data to the second wheelspeed data includes calculating a difference between the first wheelspeed and the second wheel speed. Determining the rider engagementstatus based on the comparison includes determining the rider engagementstatus based on the calculated difference.

In one example, determining the rider engagement status based on thecalculated difference includes comparing the calculated difference to apredetermined difference, and determining the bicycle is supported off asurface, on which the bicycle is supportable, when the calculateddifference is greater than the predetermined difference. Stopping orpreventing movement of the electrically powered component based on thedetermined rider engagement status includes stopping or preventingmovement of the electrically powered component when the bicycle isdetermined to be supported off the surface.

In one example, a method for controlling an electric bicycle includesreceiving, by a processor, first sensor data from a first sensor of theelectric bicycle, and receiving, by the processor, second sensor datafrom a second sensor of the electric bicycle. The method also includesidentifying, by the processor, based on the first sensor data and thesecond sensor data, whether the electric bicycle is supported, such thata wheel of the electric bicycle is drivable without translation of theelectric bicycle. The method includes preventing, by the processor,movement of an electrically powered component of the electric bicyclebased on the identifying.

In one example, receiving the first sensor data from the first sensorincludes receiving first wheel speed data from a first wheel speedsensor. The first wheel speed data represents a wheel speed of a firstwheel of the electric bicycle. Receiving the second sensor data from thesecond sensor includes receiving second wheel speed data from a secondwheel speed sensor. The second wheel speed data represents a wheel speedof a second wheel of the electric bicycle. The identifying includescomparing the first wheel speed to the second wheel speed. Preventingmovement of the electrically powered component includes preventingmovement of the electrically powered component based on the comparisonof the first wheel speed to the second wheel speed.

In one example, comparing the first wheel speed to the second wheelspeed includes determining a difference between the first wheel speedand the second wheel speed. The identifying further includes comparingthe determined difference to a predetermined difference. Preventingmovement of the electrically powered component includes preventingmovement of the electrically powered component based on the comparisonof the determined difference to the predetermined difference.

In one example, the method further includes, after preventing themovement of the electrically powered component of the electric bicycle,receiving, by the processor, a user input, and allowing the movement ofthe electrically powered component of the electric bicycle based on thereceived user input.

In one example, receiving the first sensor data from the first sensorincludes one of receiving bicycle orientation data from an orientationsensor of the electric bicycle, receiving first wheel speed data from afirst wheel speed sensor of the electric bicycle, receiving second wheelspeed data from a second wheel speed sensor of the electric bicycle,receiving crank speed data from a cadence sensor of the electricbicycle, receiving strain data from a strain gauge of the electricbicycle, and receiving acceleration data from an accelerometer, agyroscope, or a combination thereof. Receiving the second sensor datafrom the second sensor includes another of receiving bicycle orientationdata from an orientation sensor of the electric bicycle, receiving firstwheel speed data from a first wheel speed sensor of the electricbicycle, receiving second wheel speed data from a second wheel speedsensor of the electric bicycle, receiving crank speed data from acadence sensor of the electric bicycle, receiving strain data from astrain gauge of the electric bicycle, and receiving acceleration datafrom an accelerometer, a gyroscope, or a combination thereof.

In one example, receiving the first sensor data from the first sensorincludes receiving strain data from a strain gauge of a crank arm, aframe, a handlebar, or a seat of the electric bicycle.

In one example, a method for controlling electronic shifting of abicycle includes determining, by a processor, whether the bicycle ismoving based on first sensor data received from a first sensor of thebicycle. When the bicycle is determined to be moving, the method furtherincludes determining, by the processor, a rider engagement status. Thedetermining of the rider engagement status includes identifying, by theprocessor, second sensor data from a second sensor of the bicycle,identifying, by the processor, third sensor data from a third sensor ofthe bicycle, and determining the rider engagement status based on thesecond sensor data and the third sensor data. When the determined riderengagement status indicates the bicycle is being ridden, the methodincludes enabling use of an assist motor for the electronic shifting ofthe bicycle.

In one example, the method further includes identifying the first sensordata. Identifying the first sensor data includes receiving wheel speeddata from a wheel speed sensor of the bicycle. Identifying the secondsensor data includes receiving crank strain data from a strain gauge ata crank of the bicycle. Identifying the third sensor data includesreceiving crank speed data from a crank speed sensor of the bicycle.Determining the rider engagement status includes calculating, by theprocessor, an input power based on the received crank strain data andthe received crank speed data, comparing the calculated input power to apredetermined threshold power, and determining the rider engagementstatus based on the comparison of the calculated input power to thepredetermined threshold power.

In one example, when the bicycle is determined to not be moving, themethod includes. disabling the use of the assist motor for theelectronic shifting of the bicycle.

In one example, the method further includes identifying, by theprocessor, a motor current of the assist motor. The method furtherincludes comparing, by the processor, the identified motor current ofthe assist motor to a predetermined maximum motor current, and, based onthe comparison, disabling the use of the assist motor for the electronicshifting of the bicycle when the identified motor current of the assistmotor is greater than the predetermined maximum motor current.

In one example, a method for controlling electronic shifting of abicycle includes determining, by a processor, whether the bicycle ismoving. When the bicycle is determined to be moving, the method furtherincludes determining, by the processor, whether the bicycle is beingpedaled. When the bicycle is determined to be free of pedaling, themethod includes causing an assist motor of the bicycle to provide powerto a drive train of the bicycle for the electronic shifting of thebicycle.

In one example, determining whether the bicycle is moving includesreceiving, by the processor, wheel speed data from a wheel speed sensorof the bicycle, and determining whether the bicycle is moving based onthe received wheel speed data.

In one example, determining whether the bicycle is being pedaledincludes receiving, by the processor, crank data from one or more cranksensors of the bicycle, and determining whether the bicycle is beingpedaled based on the received crank data.

In one example, receiving crank data from the one or more crank sensorscomprises receiving crank cadence data from a cadence sensor of thebicycle, receiving crank angular position data from an angular positionsensor of the bicycle, receiving crank angular velocity data from anangular velocity sensor of the bicycle, or any combination thereof.

In one example, when the bicycle is determined as being pedaled, themethod further includes estimating, by the processor, continuously or ata predetermined interval, an angular position of the crank arm based onthe received crank data, and causing the assist motor of the bicycle toprovide power to the drive train of the bicycle for the electronicshifting of the bicycle when the estimated angular position of the crankarm matches a predetermined angular position of the crank arm.

In one example, the predetermined angular position of the crank armcorresponds to a vertical position of the crank arm.

In one example, causing the assist motor of the bicycle to provide powerto the drive train of the bicycle for the electronic shifting of thebicycle includes causing the assist motor of the bicycle to providepower to the drive train of the bicycle for a period of time such that asingle gear is shifted.

In one example, the determining of whether the bicycle is moving, thedetermining of whether the bicycle is being pedaled, and the causing ofthe assist motor of the bicycle to provide power to the drive train ofthe bicycle for the electronic shifting of the bicycle are part of amode of operation of the bicycle. The method further includesinitiating, by the processor, the mode of operation of the bicycle.

In one example, the method further includes receiving a user input.Initiating the mode of operation of the bicycle includes initiating themode of operation of the bicycle based on the received user input.

In one example, initiating the mode of operation of the bicycle includesautomatically initiating the mode of operation of the bicycle when thebicycle is determined to be moving and the bicycle is determined to befree of pedaling.

In one example, the method further includes receiving, by the processor,wheel speed data from a wheel speed sensor of the bicycle continuouslyor at a predetermined interval. After the mode of operation of thebicycle is initiated, the method includes controlling the assist motorfor the electronic shifting of the bicycle based on the received wheelspeed data.

In one example, a controller for a bicycle includes a processorconfigured to determine whether the bicycle is moving. The processor isfurther configured, when the bicycle is determined to be moving, todetermine whether the bicycle is being pedaled. The processor isconfigured, when the bicycle is determined to be free of pedaling, causean assist motor of the bicycle to provide power to a drive train of thebicycle for electronic shifting of the rear derailleur.

In one example, the determination of whether the bicycle is movingincludes receipt, by the processor, of wheel speed data from a wheelspeed sensor of the bicycle, and determination of whether the bicycle ismoving based on the received wheel speed data.

In one example, the determination of whether the bicycle is beingpedaled includes receipt, by the processor, of crank data from one ormore crank sensors of the bicycle, and determination of whether thebicycle is being pedaled based on the received crank data. The crankdata represents a crank speed, a crank cadence, or the crank speed andthe crank cadence of a crank arm of the bicycle.

In one example, the processor is further configured to estimate,continuously or at a predetermined interval, an angular position of thecrank arm based on the received crank data. The causing of the assistmotor of the bicycle to provide power to the drive train of the bicyclefor electronic shifting of the rear derailleur includes causing theassist motor of the bicycle to provide power to the drive train of thebicycle for the electronic shifting of the rear derailleur when theestimated angular position of the crank arm matches a predeterminedangular position of the crank arm.

In one example, the predetermined angular position of the crank armcorresponds to a vertical position of the crank arm.

In one example, a method for controlling electronic shifting of abicycle includes receiving, by a processor, wheel speed data from awheel speed sensor of the bicycle, and determining, by the processor,whether the bicycle is moving based on the received wheel speed data.When the bicycle is determined to be moving, the method furthercomprises identifying, by the processor, crank data representing a crankspeed, a crank cadence, or the crank speed and the crank cadence of acrank arm of the bicycle, and determining whether the bicycle is beingpedaled based on the identified crank data. When the bicycle isdetermined to be free of pedaling, the method includes causing an assistmotor of the bicycle to provide power to a drive train of the bicyclefor the electronic shifting of the bicycle.

In one example, identifying the crank data includes receiving, by theprocessor, the crank data from one or more crank sensors of the bicycle.

In one example, the method further includes, when the bicycle isdetermined as being pedaled, estimating, by the processor, continuouslyor at a predetermined interval, an angular position of the crank armbased on the received crank data, and causing the assist motor of thebicycle to provide power to the drive train of the bicycle for theelectronic shifting of the bicycle when the estimated angular positionof the crank arm matches a predetermined angular position of the crankarm.

In one example, receiving wheel speed data from the wheel speed sensorof the bicycle includes receiving wheel speed data from the wheel speedsensor of the bicycle continuously or at a predetermined interval. Themethod further includes, after causing the assist motor of the bicycleto provide power to the drive train of the bicycle for the electronicshifting of the bicycle, controlling the assist motor for the electronicshifting of the bicycle based on the received wheel speed data.

In one example, a method for controlling electronic shifting of abicycle includes identifying, by a processor, first sensor data. Thefirst sensor data represents a state of the bicycle or an environment inwhich the bicycle is being ridden. The method also includes initiatingautomatic control of the electronic shifting of the bicycle based on theidentified sensor data or a user input. The automatic control of theelectronic shifting of the bicycle includes identifying, by theprocessor, a cadence of a crank arm of the bicycle from second sensordata, comparing, by the processor, the identified cadence to apredetermined target cadence, and initiating, by the processor, theelectronic shifting of the bicycle based on the comparison. Theinitiating of the electronic shifting of the bicycle includes actuatinga motor of the bicycle for the electronic shifting of the bicycle whenthe identified cadence is less than a threshold cadence.

In one example, identifying the first sensor data includes receiving, bythe processor, orientation data from one or more orientation sensors ofthe bicycle. The orientation data represents an orientation of thebicycle. Identifying the first sensor data also includes receiving, bythe processor, wheel speed data from a wheel speed sensor.

In one example, the second sensor data includes crank speed data.Identifying the cadence of the crank arm of the bicycle from the secondsensor data includes receiving, by the processor, the crank speed datafrom one or more cadence sensors of the bicycle.

In one example, comparing the identified cadence to the predeterminedtarget cadence includes determining a difference between the identifiedcadence and the predetermined target cadence. Initiating the electronicshifting of the bicycle based on the comparison includes initiating theelectronic shifting of the bicycle when the determined difference isgreater than a predetermined difference. The method further includesidentifying, by the processor, a target gear based on the determineddifference and a predetermined gear ratio table. Initiating theelectronic shifting of the bicycle includes shifting a derailleur of thebicycle to the identified target gear.

In one example, the method further includes receiving, by the processor,a signal generated in response to a user input, and stopping theautomatic control of the electronic shifting of the bicycle based on thereceived signal.

In one example, the method further includes receiving, by the processor,a signal generated in response to a user input. The received signalindicates a derailleur of the bicycle is to be shifted. The methodfurther includes shifting the derailleur based on the received signal.

In one example, the method further includes ending or pausing theautomatic control of the electronic shifting in response to thereceiving of the signal.

In one example, a method for controlling electronic shifting of abicycle includes initiating, by a processor, automatic control of theelectronic shifting of the bicycle. The method further includesidentifying, by the processor, a minimum gear, beyond which a derailleuris not shiftable during the automatic control of the electronic shiftingwhen the bicycle is in a particular state, and receiving, by theprocessor, cadence data from a cadence sensor of the bicycle. After theinitiating of the automatic control of the electronic shifting, themethod includes identifying, by the processor, a target gear based onthe received cadence data, and comparing, by the processor, theidentified target gear to the identified minimum gear. The method alsoincludes preventing or allowing, by the processor, the shifting of thederailleur of the bicycle to the identified target gear based on thecomparison.

In one example, the method further includes determining, by theprocessor, whether the bicycle is being pedaled based on the receivedcadence data. The shifting of the derailleur of the bicycle to theidentified target gear is prevented or allowed based on thedetermination of whether the bicycle is being pedaled.

In one example, preventing or allowing the shifting of the derailleur ofthe bicycle to the identified target gear based on the determination ofwhether the bicycle is being pedaled includes allowing the shifting ofthe derailleur of the bicycle to the identified target gear when thebicycle is determined to be pedaled.

In one example, allowing the shifting of the derailleur of the bicycleto the identified target gear when the bicycle is determined to bepedaled includes actuating a motor of the bicycle for the electronicshifting of the bicycle when the identified cadence is less than athreshold cadence.

In one example, the method further includes receiving, by the processor,strain data from a strain gauge of the bicycle, and determining, by theprocessor, a torque on the bicycle based on the received strain data.The method also includes comparing the determined torque to apredetermined threshold torque. The shifting of the derailleur of thebicycle to the identified target gear is prevented or allowed based onthe comparison of the determined torque to the predetermined thresholdtorque.

In one example, the method further includes receiving, by the processor,a signal generated in response to a user input. The received signalincludes shift instructions. The method also includes stopping theautomatic control of the electronic shifting of the bicycle in responseto the received signal and shifting the derailleur of the bicycle basedon the received shift instructions.

In one example, the method further includes receiving, by the processor,orientation data from an orientation sensor of the bicycle. Theorientation data represents an orientation of the bicycle. The methodalso includes determining, by the processor, whether the bicycle istraveling up an incline based on the received orientation data.Preventing or allowing the shifting of the derailleur of the bicycle tothe identified target gear based on the comparison includes, when theidentified target gear is beyond the identified minimum gear, allowingthe shifting of the derailleur of the bicycle to the identified targetgear when the bicycle is determined to be traveling up the incline.

In one example, the method further includes adjusting, by the processor,the minimum gear.

In one example, a method for controlling electronic shifting of abicycle includes initiating, by a processor, automatic control of theelectronic shifting of the bicycle. The automatic control of theelectronic shifting of the bicycle includes identifying, by theprocessor, a first cadence of a crank arm of the bicycle from cadencedata, and comparing, by the processor, the identified first cadence to atarget cadence. The method also includes initiating, by the processor,the electronic shifting of the bicycle based on the comparison of theidentified first cadence to the target cadence, receiving, by theprocessor, a signal generated in response to a user input, andadjusting, by the processor, the target cadence based on the receivedsignal. The method includes identifying, by the processor, a secondcadence of the crank arm from the cadence data, comparing, by theprocessor, the identified second cadence to the adjusted target cadence,and initiating, by the processor, the electronic shifting of the bicyclebased on the comparison of the identified second cadence to the adjustedtarget cadence.

In one example, initiating the electronic shifting of the bicycle basedon the comparison of the identified first cadence to the target cadenceincludes identifying a target gear based on the comparison of theidentified first cadence to the target cadence and a gear ratio table.

In one example, the target gear is a first target gear. The automaticcontrol of the electronic shifting of the bicycle further includesadjusting the gear ratio table based on the adjusted target cadence.Initiating the electronic shifting of the bicycle based on thecomparison of the identified second cadence to the adjusted targetcadence includes identifying a second target gear based on thecomparison of the identified second cadence to the adjusted targetcadence and the adjusted gear ratio table.

In one example, the received signal is a first received signal, the userinput is a first user input, and the adjusted target cadence is a firstadjusted target cadence. The method further includes receiving, by theprocessor, a second signal generated in response to a second user input.The second signal represents a request for adjustment of the firstadjusted target cadence to a second adjusted target cadence. The methodalso includes comparing, by the processor, the second adjusted targetcadence to a predetermined cadence range, and based on the comparison ofthe second adjusted target cadence to the predetermined cadence range,maintaining the first adjusted target cadence as a target cadence whenthe second adjusted target cadence is outside of the predeterminedcadence range.

In one example, the signal is a first signal, and the user input is afirst user input. The method further includes receiving, by theprocessor, a second signal generated in response to a second user input.The second signal identifies a shift request. The method also includesdisabling the automatic control of the electronic shifting of thebicycle for a predetermined amount of time based on the receiving of thesecond signal, and shifting the derailleur based on the received secondsignal.

BRIEF DESCRIPTION OF THE DRAWINGS

Objects, features, and advantages of the present invention will becomeapparent upon reading the following description in conjunction with thedrawing figures, in which:

FIG. 1 shows a side view of one example of a bicycle with componentmotion that may be controlled in accordance with the teachings of thisdisclosure;

FIG. 2 is a side view of one example of a rear derailleur;

FIG. 3 is a block diagram of an embodiment of an electromechanicalcontrol system;

FIG. 4 is a block diagram of an operation component;

FIG. 5 is a flowchart of an embodiment of a method for automaticshifting;

FIG. 6 is a flowchart of an embodiment of a method for controlling oneor more components of a bicycle;

FIG. 7 is a flowchart of another embodiment of a method for controllingone or more components of a bicycle;

FIG. 8 is a flowchart of yet another embodiment of a method forcontrolling one or more components of a bicycle;

FIG. 9 is a flowchart of another embodiment of a method for controllingone or more components of a bicycle; and

FIG. 10 is a flowchart of an embodiment of a method for controlling oneor more components of a bicycle.

DETAILED DESCRIPTION OF THE DISCLOSURE

A bicycle with an electric pedal assist motor capable of driving achainring independent of cranks is provided. The bicycle includes wheelspeed sensors and crank cadence sensors. The wheel speed sensors and thecrank cadence sensors measure wheel speed and crank cadence,respectively, and provide the measured wheel speed and crank cadence toan electric rear derailleur or a controller of the bicycle. The electricrear derailleur, for example, is configured to instruct an e-bikecontroller to activate motor overdrive based on the measured wheel speedand/or the measured crank cadence.

The rear derailleur, for example, and, more specifically, shifting bythe rear derailleur may be configured based on a selected ride mode. Theride mode may be selected from a number of different ride modes, and thecontroller or another controller of the bicycle may switch between twoor more of the different ride modes. Within each of the different ridemodes, characteristics of the shifting such as, for example, gearhysteresis, a minimum gear to shift to without pedaling, and/or othercharacteristics may be adjusted.

Turning now to the drawings, FIG. 1 illustrates an example bicycle 100(e.g., e-bike) that may be used to implement a connection to a gearchanger 102 using an intermediate power connector 104. In theillustrated embodiment, the bicycle 100 includes a frame 106, handlebars108, and a seat 110. The bicycle 100 also includes a first or frontwheel 112 and a second or rear wheel 114. A front brake 116 and/or arear brake 118 are included to brake the front wheel 112 and the rearwheel 114, respectively. The front brake 116 and/or the rear brake 118are controlled by at least one brake actuator 120. The bicycle 100includes a drive train 122. The drive train 122 of FIG. 1 includes acrank assembly 124 operatively coupled to a rear cassette 126 via achain 128. The crank assembly includes crank arms 130 and pedals 132, aswell as at least one chainring 134 configured to operatively couple withthe chain 128 to transmit force and/or power exerted onto the crankassembly 124 to the chain 128. This force and/or power is transmitted tothe rear cassette 126 by the chain 128, whereby a motivating force 136and/or power is transmitted to the rear wheel 114 from the rear cassette126. While the drive train 122 includes the gear changer (e.g., a rearderailleur 102 in the illustrated embodiment), other transmissions suchas an internal gear hub, a gear box, and/or a continuously variabletransmission may be applied to the bicycle 100.

The drive train 122 may also include a power assist device 140. Pedalingtorque is applied to the crank assembly 124 by a rider using the pedals132 and crank arms 130. The power assist device 140 is configured toassist the rotation of the rear wheel 114. In the illustratedembodiment, the power assist device 140 is configured to assist therotation of the wheel rear 114 via a coupled connection to the crankassembly 124. The power assist device 140 includes a power assist motor141 that is powered by a remote power source 142.

The chain 128 may be moved between individual sprockets of the rearcassette 126 using the gear changer, such as the rear derailleur 102, asshown in FIG. 1 . The rear derailleur 102, for example, is an electricgear changer that is controlled by signals indicating that a shiftcommand has been actuated by the bicycle operator, or rider. Theelectric rear derailleur 102 may be alternatively powered by anintegrated power source or a remote power source 142, using a powerconductive connector or cable 144. The power is provided from the remotepower source 142 through the cable 144 to the intermediate powerconnector 104 that is coupled to the rear derailleur 102. The shiftcommands are implemented using an electric actuator 148 that is manuallyoperable by the rider. The signals indicating the shift commands may becommunicated to the electric rear derailleur 102 using wired and/orwireless communication techniques.

Referring to FIG. 2 , the rear derailleur 102 is attached to the bicycleframe 106 and positioned next to the rear cassette 126. The chain 128 isonly schematically shown in dashed lines. The electric, orelectromechanical, rear derailleur 102 includes a base member 150 (e.g.,a “b-knuckle”), an outer link 152, and an inner link 154. The basemember 150 is attachable to the bicycle frame 106 in a conventionalmanner. The inner link 154 is pivotally attached to the base member 150by link pins, for example. A moveable member or assembly 156 (e.g., a“p-knuckle”) is pivotally connected to the outer link 152 and the innerlink 154 at an end opposite the base member 150 to permit displacementof the moveable assembly 156 relative to the base member 150.

The rear derailleur 102 may also be configured to work with anintegrated power source 158, such as a removable battery. In theexamples shown in FIGS. 1 and 2 , the integrated power source or battery158 is attached to the rear derailleur 102. The integrated power source158 may power, for example, a motor of the rear derailleur 102 used toshift the rear derailleur 102. The intermediate power connector 104 mayinclude an interface with the rear derailleur 102 that includesinterface features similar to the removable battery 158 in order toelectrically connect to the derailleur 102. This interface may have aportion that is removably connectable or coupleable to the rearderailleur 102. The intermediate power connector 104, or at least aconnecting portion thereof, may also be smaller than the removablebattery 158. As the intermediate power connector 104 transmits powerfrom the remote battery or power source 142, the intermediate powerconnector 104 may include circuitry for transforming the electricalenergy provided by the remote battery 142 into a form that is usable bythe derailleur 102. For example, the intermediate power connector 104may include circuitry for voltage reduction, voltage rectification, aswell as other power transformation circuitry and/or devices orcombinations thereof. In an embodiment, the intermediate power connector104 may also include communication circuitry and/or other devices. Forexample, the intermediate power connector 104 may include a wirelesstransmitter and/or receiver, CANbus to wireless translator, wired dataconnector, a CANbus to derailleur protocol translator, and/or otherdevices or circuitry and combinations thereof.

As shown, the bicycle 100 also has a handlebar mounted user interface,by way of the shift actuator or electric actuator 148. All of thesecomponents may be connected to the remote power source or remote battery142. Additionally, all the communication between the e-bike centralcontrol system or controller, and each component is achieved throughwired or wireless communication. There may be discrete control withindividual wires from the central controller to each component or thesystem may use a controller area network (“CAN”) bus designed to allowmicrocontrollers and devices to communicate with each other inapplications.

While the illustrated bicycle 100 is a mountain bicycle and may includesuspension components, such as a shock absorbing front fork, theembodiments disclosed herein may be implemented with other types ofbicycles such as, for example, road bicycles. The front and/or forwardorientation of the bicycle 100 is indicated by the direction of thearrow “A” in FIG. 1 . As such, a forward direction of movement of thebicycle is indicated by the direction of the arrow A.

An e-bike central control system or controller may be supported by asame housing as the remote power source 142. The e-bike controller maycontrol power from the remote power source 142 to components on thebicycle 100 such as, for example, the power assist device 140. Thee-bike controller may control power to other and/or different componentson the bicycle 100. The e-bike controller may send signals (e.g.,instructions) to and/or receive data (e.g., instructions and/or sensordata) from components on the bicycle 100 such as, for example, thederailleur 102, a suspension system, and/or a seat post assembly toactuate and/or control components of the bicycle 100.

In other embodiments, the e-bike controller may be located in otherlocations (e.g., mounted on the handlebars) on the bicycle 100 or,alternatively, may be distributed among various components of thebicycle 100, with routing of a communication link to accommodatenecessary signal and power paths. The e-bike controller may also belocated other than on the bicycle 100, such as, for example, on arider's wrist or in a jersey pocket. The communication link may includewires, may be wireless, or may be a combination thereof. In one example,the e-bike controller may be integrated with the rear derailleur 102 tocommunicate control commands between components. The e-bike controllermay include a processor, communication device (e.g. a wirelesscommunication device), a memory, and one or more communicationinterfaces.

In one example, the controller of the derailleur and/or the e-bikecontroller wirelessly actuates a motor module of the derailleur 102and/or an assist motor and operates the derailleur 102 for executinggear changes and gear selection. Additionally or alternatively, thecontroller of the derailleur and/or the e-bike controller may beconfigured to control gear shifting of a front gear changer.

FIG. 3 shows an example of a control system 300 (e.g., anelectromechanical control system) for the bicycle 100, for example. Thecontrol system 300 includes the e-bike controller 302, the power assistdevice 140, the rear derailleur 102, and one or more sensors. The powerassist device 140 is, for example, an assist motor.

The one or more sensors include, for example, a pedal speed sensor 304,a wheel speed sensor 306, and a torque sensor 308. For example, thepedal speed sensor 304 measures a rotational speed of at least one ofthe crank arms 130, the wheel speed sensor 306 measures a rotationalspeed of at least one of the wheels 114, 112, and the torque sensor 308measures a torque on the crank assembly 124 and/or a torque on an outputshaft of the assist motor 140. The control system 300 may include more,fewer, and/or different sensors. For example, the one or more sensorsmay include more than one wheel speed sensors 306, one for the frontwheel 112 and one for the rear wheel 114.

The pedal speed sensor 304, the wheel speed sensor 306, and the torquesensor 308 may be any number of different types of sensors. For example,the pedal speed sensor 304 and the wheel speed sensor 306 may be acombined speed and cadence sensor. The speed and cadence sensor mayinclude a spoke magnet attached to a spoke of the front wheel 112 or therear wheel 114 and/or a cadence magnet attached to one of the crank arms130, and a sensor attached to the frame 106 of the bicycle 100 (e.g., aHall effect sensor). The sensor attached to the frame 106 of the bicycleis configured to identify and count rotations of the one crank arm 130and/or the front wheel 112 or the rear wheel 114 based on the cadencemagnet and/or the spoke magnet passing the sensor attached to the frame106, respectively. Other types of sensors may be provided (e.g., acombination of a gyroscope and an accelerometer for the wheel speedsensor 306). The torque sensor 308 may include, for example,magnetoelastic torque sensors, strain gauges, SAW devices, and/or othertypes of torque sensors. In one embodiment, the torque sensor 308 is acurrent sensor that measures current through the assist motor 140. Theamount of current consumed by the assist motor 140 is proportional to atorque the assist motor 140 applies to a drivetrain of the bicycle 100.

As shown in the embodiment of FIG. 3 , the power assist device 140, therear derailleur 102, and the one or more sensors (e.g., the pedal speedsensor 304, the wheel speed sensor 306, and the torque sensor 308) maybe in direct communication with the e-bike controller 302. Alternativelyor additionally, at least some components of the control system 300 maybe in indirect communication with the e-bike controller 302. Forexample, the wheel speed sensor 306 and/or the pedal speed sensor 304may be in direct communication with the rear derailleur 102 and indirectcommunication with the with the e-bike controller 302 via the rearderailleur 102. In one embodiment, each of at least the rear derailleur102 and the e-bike controller 302 is in direct communication with allsensors of, for example, the pedal speed sensor 304, the wheel speedsensor 306, and the torque sensor 308. Other and/or different componentsof the control system 300 may be in direct communication with allsensors of the one or more sensors (e.g., the power assist device 140).Communication between the components of the control system 300 may bewired communication and/or wireless communication.

Each communication link 310 between the components of the control system300 may be in both directions. In other words, data flow betweencomponents of the control system 300 in direct communication may be inboth directions. For example, the wheel speed sensor 306 may receivesignals from the e-bike controller 302 or the rear derailleur 102 (e.g.,as to when to measure the rotational speed) and return the measuredrotational speed to the e-bike controller 302 or the rear derailleur102.

FIG. 4 is a block diagram of an operation component 400. The operationcomponent 400 may be or may be part of one or more of the previouslydescribed components such as, for example, the rear derailleur 102, thee-bike controller 302, and a front gear changer. The operation component400 may also be another component, such as the power assist device 140,an internal gearbox component, a suspension or an adjustable suspensioncomponent, or an adjustable seating component. A plurality of operationcomponents 400 may be provided.

The operation component 400 is provided with an operation unit 402,which may be a circuit board or an alternative configuration. Theoperation unit 402 includes an operation processor 404, an operationmemory 406, an operation user interface 408, an operation power source410, an operation communication interface 412, and an operation deviceinterface 414. In an embodiment, the operation communication interface412 is in communication with an operation communication device 416 andthe operation device interface 414 is in communication with an operationdevice 418. Additional, different, or fewer components may be provided.For example, the operation user interface 408 may be omitted.

The structure, connections, and functions of the operation processor 404may be representative of those of the rear derailleur 102, the frontderailleur, the ebike controller 302, or another component. Theoperation processor 404 may include a general processor, digital signalprocessor, an ASIC, FPGA, analog circuit, digital circuit, combinationsthereof, or other now known or later developed processor. The operationprocessor 404 may be a single device or combinations of devices, such asthrough shared or parallel processing.

The operation memory 406 may be a volatile memory or a non-volatilememory. The operation memory 406 may include one or more of a ROM, aRAM, a flash memory, an EEPROM, or other type of memory. The operationmemory 406 may be removable from the operation component 400, such as anSD memory card. In a particular non-limiting, exemplary embodiment, acomputer-readable medium can include a solid-state memory such as amemory card or other package that houses one or more non-volatileread-only memories. Further, the computer-readable medium may be arandom access memory or other volatile re-writable memory. Additionally,the computer-readable medium may include a magneto-optical or opticalmedium, such as a disk or tapes or other storage device. Accordingly,the disclosure is considered to include any one or more of acomputer-readable medium and other equivalents and successor media, inwhich data or instructions may be stored.

The operation memory 406 is a non-transitory computer-readable mediumand is described to be a single medium. However, the term“computer-readable medium” includes a single medium or multiple media,such as a centralized or distributed memory structure, and/or associatedcaches that are operable to store one or more sets of instructions andother data. The term “computer-readable medium” shall also include anymedium that is capable of storing, encoding or carrying a set ofinstructions for execution by a processor or that cause a computersystem to perform any one or more of the methods or operations disclosedherein.

The operation power source 410 is a portable power source, which may bestored internal to the operation component 400 or stored external to theoperation component 400 and communicated to the operation componentthrough a power conductive cable. The operation power source 410 mayinvolve the generation of electric power, for example using a mechanicalpower generator, a fuel cell device, photo-voltaic cells, piezoelectric,or other power-generating devices. The operation power source 410 mayinclude a battery such as a device consisting of two or moreelectrochemical cells that convert stored chemical energy intoelectrical energy. The operation power source 410 may include acombination of multiple batteries or other power providing devices.Specially fitted or configured battery types, or standard battery typesmay be used.

In the example where the operation component 400 is the rear derailleur102, the operation power source 410 may be stored internal to theoperational component 400. In the example where the operation component400 is the e-bike controller 302, the operation power source 410 may bestored internal or external to the operation component 400. For example,the e-bike controller 302 may be supported within a housing of theremote power source 142 of FIG. 1 .

The operation device interface 414 provides for operation of a componentof the bicycle 100. For example, the operation device interface 414 maytransmit power from the operation power source 410 to generate movementin the operation device 418. In various embodiments, the operationdevice interface 414 sends power to control movement of the assist motor140, a motor of the rear derailleur 102, a motor of the frontderailleur, or any combination thereof. In one embodiment, the operationcomponent 400 is the e-bike controller 302, and the operation deviceinterface 414 sends power to control movement of the power assist device140. The operation device interface 414 includes wired conductivesignals and/or data communication circuitry operable to control theoperation device 418.

The operation user interface 408 may be one or more buttons, keypad,keyboard, mouse, stylus pen, trackball, rocker switch, touch pad, voicerecognition circuit, or other device or component for communicating databetween a user and the operation component 400. The operation userinterface 408 may be a touch screen, which may be capacitive orresistive. The operation user interface 408 may include an LCD panel,LED, LED screen, TFT screen, or another type of display. The operationuser interface 408 may also include audio capabilities or speakers.

The operation communication interface 412 is configured to receive, withthe operation communication device 416, data such as measurement data(e.g., rotational crank speed, rotational wheel speed, and/or torque),anticipation signals, operation signals, and/or other signals frombicycle components (e.g., the pedal speed sensor 304, the wheel speedsensor 306, and/or the torque sensor 308; the e-bike controller 302). Inone embodiment, the operation component 400 includes more than oneoperation communication interface 412 in communication with more thanone operation communication device 416, respectively. The operationcommunication interface 412 may also be configured to send data such asstatus signals (e.g., temperature sensor signals) for reception by, forexample, the e-bike controller 302. The operation communicationinterface 412 communicates the data using any operable connection. Anoperable connection may be one in which signals, physicalcommunications, and/or logical communications may be sent and/orreceived. An operable connection may include a physical interface, anelectrical interface, and/or a data interface. One or more operationcommunication interfaces may provide for wireless communications throughthe operation communication device 416 in any now known or laterdeveloped format. Although the present specification describescomponents and functions that may be implemented in particularembodiments with reference to particular standards and protocols, theinvention is not limited to such standards and protocols. For example,standards for Internet and other packet switched network transmission(e.g., TCP/IP, UDP/IP, HTML, HTTP, HTTPS) represent examples of thestate of the art. Such standards are periodically superseded by fasteror more efficient equivalents having essentially the same functions.Accordingly, replacement standards and protocols having the same orsimilar functions as those disclosed herein are considered equivalentsthereof.

In accordance with various embodiments of the present disclosure,methods described herein may be implemented with software programsexecutable by a computer system, such as components of the controlsystem 300 (e.g., the e-bike controller 302 and the rear derailleur102), and/or other components on the bicycle 100 and/or worn by theuser. Further, in an exemplary, non-limited embodiment, implementationsmay include distributed processing, component/object distributedprocessing, and parallel processing. Alternatively, virtual computersystem processing can be constructed to implement one or more of themethods or functionality as described herein.

A computer program (also known as a program, software, softwareapplication, script, or code) may be written in any form of programminglanguage, including compiled or interpreted languages, and the computerprogram may be deployed in any form, including as a standalone programor as a module, component, subroutine, or other unit suitable for use ina computing environment. A computer program does not necessarilycorrespond to a file in a file system. A program may be stored in aportion of a file that holds other programs or data (e.g., one or morescripts stored in a markup language document), in a single filededicated to the program in question, or in multiple coordinated files(e.g., files that store one or more modules, sub programs, or portionsof code). A computer program may be deployed to be executed on onecomputer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The processes and logic flows described in this specification may beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows may also be performedby, and the apparatus may also be implemented as, special purpose logiccircuitry (e.g., an FPGA or an ASIC).

As used in this application, the term ‘circuitry’ or ‘circuit’ refers toall of the following: (a) hardware-only circuit implementations (such asimplementations in only analog and/or digital circuitry) and (b) tocombinations of circuits and software (and/or firmware), such as (asapplicable): (i) to a combination of processor(s) or (ii) to portions ofprocessor(s)/software (including digital signal processor(s)), software,and memory(ies) that work together to cause an apparatus, such as amobile phone or server, to perform various functions) and (c) tocircuits, such as a microprocessor(s) or a portion of amicroprocessor(s), that require software or firmware for operation, evenif the software or firmware is not physically present.

This definition of ‘circuitry’ applies to all uses of this term in thisapplication, including in any claims. As a further example, as used inthis application, the term “circuitry” would also cover animplementation of merely a processor (or multiple processors) or portionof a processor and its (or their) accompanying software and/or firmware,as well as other electronic components. The term “circuitry” would alsocover, for example and if applicable to the particular claim element, abaseband integrated circuit or applications processor integrated circuitfor a mobile computing device or a similar integrated circuit in server,a cellular network device, or other network device.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor receives instructions and data from a read only memory or arandom access memory or both. The essential elements of a computer are aprocessor for performing instructions and one or more memory devices forstoring instructions and data. Generally, a computer also includes, orbe operatively coupled to receive data from or transfer data to, orboth, one or more mass storage devices for storing data (e.g., magnetic,magneto optical disks, or optical disks). However, a computer need nothave such devices. Moreover, a computer may be embedded in anotherdevice such as, for example, a mobile telephone, a personal digitalassistant (“PDA”), a mobile audio player, a Global Positioning System(“GPS”) receiver, a control unit, a rear derailleur, or a front gearchanger, to name just a few. Computer readable media suitable forstoring computer program instructions and data include all forms ofnon-volatile memory, media and memory devices, including by way ofexample semiconductor memory devices (e.g., EPROM, EEPROM, and flashmemory devices); magnetic disks (e.g., internal hard disks or removabledisks); magneto optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory may be supplemented by, or incorporated in,special purpose logic circuitry.

The operation communication device 416 provides for data and/or signalcommunication from the operation component 400 to another component ofthe bicycle 100, or an external device such as a mobile phone or othercomputing device. The operation communication device communicates thedata using any operable connection. An operable connection may be one inwhich signals, physical communications, and/or logical communicationsmay be sent and/or received. An operable connection may include aphysical interface, an electrical interface, and/or a data interface.The control communication device may be configured to communicatewirelessly, and as such include one or more antennae. The controlcommunication device provides for wireless communications in any nowknown or later developed format.

A control antenna may also be provided. The control antenna may be aplurality of control antennae. The operation component 400 may includean antenna with circuitry of a PCB of the operation component 400;however, additional antennae may also be included in the circuitry. Thecontrol antenna may be integrated with another component of the bicycle100 or may be an independent component. For example, the control antennamay be integrated as part of the e-bike controller 300 and/or as part ofthe rear derailleur 102.

The derailleur 102 may allow configuration of a number of ride modesthat may be switched between by a control unit (e.g., the e-bikecontroller 302 or another controller on or outside of the bicycle 100).The control unit may switch the ride mode based on user input (e.g., viathe electric actuator 148 or another interface) or automatically basedon sensed conditions. In each mode, various characteristics of the ridemode may be adjusted. For example, gear hysteresis, minimum gear toshift to without pedaling, and/or other characteristics may be adjusted.

FIG. 5 is a flowchart of an embodiment of a method for electromechanicalcontrol of components of the bicycle 100, for example. The flowchartalso illustrates a method for transmitting and receiving wirelesssignals on the bicycle 100. As presented in the following sections, theacts may be performed using any combination of the components indicatedin previous figures. For example, the following acts may be performed byat least some components of the control system 300, as well asadditional or other components. In an embodiment, the acts may beperformed by, for example, the rear derailleur 102, the e-bikecontroller 302, the power assist device 140, the one or more sensors, orany combination thereof. Additional, different, or fewer acts may beprovided. The acts are performed in the order shown or in other orders.The acts may be repeated.

In act 500, a processor initiates a mode (e.g., a full automatic mode)for a bicycle. In the full automatic mode, a derailleur (e.g., thederailleur 102) is shifted without user input to maintain a gear thatresults in a rider cadence close to a defined target based on a currentwheel speed. The processor may initiate the full automatic mode based onuser input or automatically based on sensed riding conditions. In oneembodiment, the processor is a processor of the derailleur and initiatesthe full automatic mode based on instructions from another processorthat received the user input or identified the sensed riding conditions(e.g., the e-bike controller 302).

In act 502, the processor receives data representing a wheel speed froma sensor (e.g., a wheel speed sensor; the wheel speed sensor 306). Thewheel speed sensor measures rotational speed of a wheel continuously orat a predetermined interval. The received data representing the wheelspeed may be for a front wheel of the bicycle and/or a rear wheel of thebicycle. The data representing the wheel speed may be a rotational speedvalue (e.g., in revolutions per minute).

In act 504, the processor receives data representing a cadence speedfrom a sensor (e.g., a pedal speed sensor or crank cadence sensor; thepedal speed sensor 304). The pedal speed sensor measures rotationalspeed of a crank arm, to which a pedal of the bicycle is attached,continuously or at a predetermined interval. The data representing thecadence speed may be a rotational speed value (e.g., in revolutions perminute).

Some wheel speed and crank cadence sensors that may be used for inputsto the method use a single magnet mounted on the wheel or crank,respectively, and a single reed switch or hall effect sensor mounted tothe frame. As the wheel or crank rotates, the magnet passes by the Halleffect sensor or the reed switch once per revolution, generating asignal that is read by the processor. These sensor systems measure crankor wheel angular velocity using a time between activations of the reedswitch or the Hall effect sensor. As a wheel or a crank decelerates, atime period between hall or reed events increases. The rotational speedcalculated by the microprocessor is only updated when a sensor eventoccurs. The automatic shifting performance of the method described aboveincreases the faster the current wheel or the current crank speed may beaccurately updated. When the wheel or the crank comes to a completestop, the magnet does not pass by the Hall effect sensor or the reedswitch again, so the time to update the speed becomes infinite. Toprevent this, the processor has a maximum time between activations,beyond which the crank speed or the wheel speed is assumed to be 0(e.g., greater than 2 seconds, effectively stopped). If the rider hasdecelerated from 60 RPM to 0 RPM within 1 revolution of the wheel, theprocessor would have to wait two seconds to make that determination

If the method makes a critical decision after the wheel speed hasdropped below 50 RPM, the processor may estimate when this has occurredby tracking how much time has elapsed since the last sensor event. Itmay be assumed that the bicycle is not traveling faster than

$\frac{60{seconds}}{{seconds}{elapsed}{since}{last}{event}}{({RPM}).}$Using this calculation allows the bicycle (e.g., the processor) to actfaster on crank speed and/or wheel speed information than waiting forthe next signal to occur.

In act 506, the processor compares the data representing the cadencespeed (e.g., current cadence speed) received in act 504 to a targetcadence speed. The target cadence speed may be user defined. Forexample, the bicycle may include one or more control devices (e.g., twocontrol buttons) mounted on the handlebars of the bicycle. The twocontrol buttons may be in communication (e.g., wireless communicationand/or wired communication) with, for example, the e-bike controller 302and/or other components on the bicycle. One of the two control buttonsmay generate a signal instructing an increase in the target cadencespeed when pressed, and the other of the two control buttons maygenerate a signal instructing a decrease in the target cadence speedwhen pressed. A single press of either of the two control buttons, forexample, increments or decrements the target cadence speed (e.g., asetpoint) by a configurable number of RPM. In one embodiment, thesetpoint is adjustable within functionally practical predeterminedbounds (e.g., 60 RPMs-120 RPMs). The rider attempting to adjust beyondthe limits of the predetermined bounds has no effect on the setpoint. Inother words, the setpoint will remain at the lower bound or the higherbound. The predetermined bounds may also be adjustable.

In one embodiment, shifter buttons that control the rear derailleurupshift and downshift actions may be dual purposed to control thesetpoint of the automatic shifting target cadence. The upshift anddownshift buttons may trigger the upshift and downshift actions of therear derailleur, respectively, if the shifter button is pressed for lessthan a predetermined amount of time (e.g., less than 300 milliseconds).If a shifter button is pressed and held for longer than thepredetermined amount of time (e.g., a long press), the long press may beconsidered a setpoint adjustment command and may increment or decrementthe target cadence.

Each setpoint adjustment may only modify the target cadence by a smallamount (e.g., 1 RPM) to achieve a precise adjustment. In one embodiment,in order to make a large adjustment to the target cadence quickly, along press may be followed by one or more shorter presses (e.g., lessthan 300 milliseconds). As long as each shorter press occurs within somethreshold time after the previous press (e.g., 800 milliseconds), theshorter presses may each cause an additional increment or decrement tothe setpoint.

During a sequence of presses, if a time between a button press and theprevious button press exceeds a threshold period of time, the buttonpress, and all subsequent presses may be interpreted as a derailleurupshift or downshift commands until another long press occurs. If a longpress is followed by one or more of short presses within the thresholdto be considered a repeated command, but the button direction changes(e.g., LONG UP, SHORT UP, SHORT UP, SHORT DOWN), the repeated commandsequence may be terminated, and the button press of the alternatedirection may be interpreted as a shift. The downshift button may sharethe increase setpoint function, and the upshift button may share thedecrease setpoint function. In one embodiment, these function pairingsmay be swapped.

A memory in communication with the processor (e.g., a memory of thederailleur 102 or a memory of the e-bike controller 302) stores a gearratio table and upshift/downshift tables. When the setpoint is adjustedby the rider, the processor recalculates the gear ratio table and theupshift/downshift tables based on the adjusted setpoint. If a closestgear ratio changes at the time of the setpoint adjustment, thederailleur immediately shifts, ignoring hysteresis built into theupshift/downshift tables.

In one embodiment, the setpoint adjustment is configured through asystem control interface (e.g., an e-bike system control interface). Thesystem control interface may be capable of displaying a current setpointand directly adjusting the setpoint on the rear derailleur. In anotherembodiment, the setpoint adjustment is executed via a mobile deviceapplication in direct communication with the rear derailleur.

In act 508, the processor determines whether the current cadence speedreceived in act 504 is within a range (e.g., within 3 RPMs) relative tothe target cadence speed based on the comparison of act 506. If thecurrent cadence speed is within the range, the method returns to act502. If the current cadence speed is outside of the range, the methodmoves to act 510.

In act 510, the processor compares the current wheel speed to apredetermined minimum wheel speed. For example, the processor calculatesa difference between the current wheel speed and the predeterminedminimum wheel speed. The predetermined minimum wheel speed represents,for example, a functional minimum rotational wheel speed.

In act 512, the processor determines whether the current wheel speed isgreater than or less than the predetermined minimum wheel speed based onthe comparison in act 510. If the processor determines the current wheelspeed is less than the predetermined minimum wheel speed, a shift is notinitiated, and the method returns to act 502. If the processordetermines the current wheel speed is greater than the predeterminedminimum wheel speed, the method moves to act 514.

The feature of overdriving chainring while not pedaling is limited byspeed of bicycle. This provides that the chainring is not to be drivenat a speed such that torque is applied to the wheel. Because of this,the method described above may not be applied when the bicycle is movingvery slowly or is stopped. To overcome this, a hub capable of decouplingthe cassette may be used. When the bicycle is stopped or moving below aspeed at which the overdrive function may be safely used, the controlsystem may decouple or declutch the cassette from the rear hub to allowforward motion of the cassette without applying torque to the wheel.With the hub decoupled, the derailleur may change gears, and the assistmotor may run in overdrive to select a desirable gear for the slow orstopped condition. The crank speed sensor may be used to detect resumedrider input into the system. The control system recouples the cassetteto the hub when rider pedaling or faster rider pedaling is detected.

In act 514, the processor determines whether the crank arm is rotating.For example, the processor determines whether the crank arm is rotatingbased on the current cadence speed received at act 504. If the currentcadence speed is greater than zero, the method moves to act 516. If thecurrent cadence speed is equal to zero or approximately zero (e.g., lessthan or equal to 1 RPMs), the method moves to act 518.

In act 516, the processor instructs a motor (e.g., a motor of thederailleur or the assist motor 140) to actuate and shift to maintain agear that results in a rider cadence close to (e.g., within the rangediscussed above) the target cadence speed identified in act 506. Afteract 516, the method returns to act 502.

When performing automatic shifts, the derailleur may adjust a minimumtiming between shifts based on current wheel speed, current cog, currentrider cadence, or some other parameter to provide that each shift iscompleted before a next shift is attempted. This timing is optimized toallow shifting as fast as possible without inducing a shift failure.

The assist motor is to not run without the user pedaling such that themotor is accelerating or maintaining the bicycle speed. This is notdifficult if the current wheel speed is accurate. The wheel speed sensormay, however, update the current wheel speed only once per revolution ofthe wheel. During rapid deceleration events, the bicycle may drop belowa speed of the assist motor before the wheel speed sensor has reportedthe speed change. An accelerometer or inertial measurement unit (IMU) ofthe bicycle may be used to supplement the wheel speed sensor data bydisabling the assist motor in the event of a significant deceleration.If a rapid deceleration event occurs, the assist motor may betemporarily stopped (e.g., if currently running) until wheel speed datahas been updated.

In act 518, the processor instructs, for example, the assist motor torun for a period of time to allow the chain to derail to a target cog(e.g., with the motor of the derailleur). After act 516, the methodreturns to act 502.

When using the assist motor to facilitate shifting while the rider isnot pedaling, the assist motor should be running the drivetrain slowerthan the bicycle is moving. A threshold for an amount of currentconsumed by the assist motor (e.g., proportional to the torque theassist motor is applying to the drivetrain) may be defined to preventthe motor from unwanted power input into the drivetrain. This is anintentionally redundant method of shutting down the assist motor to thespeed calculation. It is important that the assist motor not applyunexpected torque to the drivetrain, causing unexpected acceleration ofthe bicycle.

A rate at which the assist motor, for example, drives the chain tofacilitate shifting while the rider is not pedaling is to be low enoughsuch that for a current gear ratio and the current wheel speed, notorque is transmitted to driving elements of a hub (e.g.,chainring_rpm<current_gear_ratio*current_wheel_speed+safety_margin). Itis desirable to complete the shift as fast as possible. Accordingly, thechainring may be driven as fast as possible without applying torque to,for example, the rear wheel. The assist motor speed may therefore be setas a function of the current gear ratio and the current wheel speed. Inan embodiment, the motor output torque is limited below a thresholdduring a motor aided shifting event. For example, the motor outputtorque may be limited to two (“2”) newton-meters (“N m”).

It is desirable that the assist motor run for as little time as isneeded to complete the commanded shift. Any time the chainring isturning the opportunity for a chainring derailment is increased (e.g.,with the low pedaling loads of the motor assisted shift). The durationthat the motor runs may be a function of the currently selected cog, asdifferent cogs have different expected times to complete shift. In oneembodiment the rear derailleur (e.g., the processor and/or one or moresensors of the rear derailleur) may determine when the shift has beencompleted (e.g., the chain has derailed to the target cog). In thiscase, the motor may run until the derailleur has detected the completionof the shift.

In one embodiment, the automatic shifting described above may operatewith the motor drive function while not pedaling (e.g., overdriving thechainring while not pedaling) even if the bicycle is configured for zerorider assistance. In this configuration, the assist motor may only runwhen the derailleur is shifting and not pedaling to facilitate shifting.When the rider is pedaling, the non-assisting mode of the e-bike systemis honored.

FIG. 6 is a flowchart of an embodiment of a method for electromechanicalcontrol of components of a bicycle (e.g., the bicycle 100). As presentedin the following sections, the acts may be performed using anycombination of the components indicated in previous figures. Forexample, the following acts may be performed by at least some componentsof the control system 300, as well as additional or other components. Inan embodiment, the acts may be performed by, for example, the rearderailleur 138, the e-bike controller 302, the power assist device 140,the one or more sensors, or any combination thereof. Additional,different, or fewer acts may be provided. The acts are performed in theorder shown or in other orders. The acts may be repeated.

In act 600, a processor determines whether the bicycle is moving. In oneembodiment, the processor determines whether the bicycle is moving byreceiving wheel speed data from a wheel speed sensor of the bicycle anddetermining whether the bicycle is moving based on the received wheelspeed data. For example, the processor may determine the bicycle ismoving when the received wheel speed data indicates a wheel speed isgreater than zero.

In act 602, when the bicycle is determined to be moving, the processordetermines whether the bicycle is being pedaled. In one embodiment, theprocessor determines whether the bicycle is being pedaled by receivingcrank data from one or more crank sensors of the bicycle and determiningwhether the bicycle is being pedaled based on the received crank data.For example, the processor may determine the bicycle is being pedaledwhen the received crank data indicates a crank speed is greater thanzero.

The one or more crank sensors of the bicycle may include any number ofdifferent types of crank sensors. For example, the processor may receivecrank cadence data from one or more cadence sensors of the bicycle,crank angular position data from one or more angular position sensors ofthe bicycle, crank angular velocity data from one or more angularvelocity sensors of the bicycle, or any combination thereof.

In one embodiment, when the bicycle is determined as being pedaled, themethod may include additional acts. For example, the processor mayestimate, continuously or at a predetermined interval, an angularposition of the crank arm based on the received crank data.

In act 604, when the bicycle is determined to be free of pedaling, theprocessor causes an assist motor of the bicycle to provide power to adrive train of the bicycle for the electronic shifting of the bicycle.In one embodiment, the processor causes the assist motor of the bicycleto provide power to the drive train of the bicycle for a period of timesuch that a single gear is shifted. If a number of gears are to beshifted, the assist motor may be activated a number of different times.

Derailleur actions may be timed and/or otherwise correlated with angularposition of the crank arm. In other words, derailleur shift operationsmay be timed to act with particular angular positions of the crank arm.The processor may execute the shifting based on the estimated angularposition of the crank. For example, the processor causes the assistmotor of the bicycle to provide power to the drive train of the bicyclefor the electronic shifting of the bicycle when the estimated angularposition of the crank arm matches a predetermined angular position ofthe crank arm. In one embodiment, the predetermined angular position ofthe crank arm corresponds to a vertical position of the crank arm.

When a rear shifting system executes a shift, the rider may experience adiscontinuity in their pedaling stroke, such as a short but fast crankadvancement which may be disturbing or cause an unpleasant feeling forthe rider. Also, in some rear shifting systems it is desirable that thechain tension be low during shifting to prevent damage to a cassette,chain, or gearbox. Because the rider cannot anticipate when theautomatic shifting algorithm will execute a shift and adjust theirpedaling force accordingly during the shift, it is beneficial to boththe rider and the shifting mechanism that the shifts occur when therider's input torque is low. As a rider pedals there are typicallyregions of low torque input, such as when the cranks are in the verticalposition. A crank cadence, angular position, or angular velocity sensormay be used to delay, and/or otherwise time, the start of the shiftingmotion in order to cause the shift to execute in a desirable crank armlocation for appropriate rider input torque. Some sensors, such as atraditional cadence sensor, may reference a fixed location on thebicycle frame to time crank rotating speed. A signal may be sent fromthe cadence sensor as is passes the frame reference. When the rearderailleur chooses to execute a shift from the automatic shiftingalgorithm—it will wait until the cranks are in a position such that theshift will complete at a desirable location in the rider's pedalingmotion. The derailleur uses the cadence sensor frame reference signalalong with the crank cadence data to maintain an estimated position ofthe cranks at all times. In an embodiment, the frame mounted portion ofa cadence sensor may be positioned relative to an appropriate shift zonefor the crank arm position. For example, the frame mounted part of acadence sensor may be mounted to a seat stay portion of the frame, andanother portion of the cadence sensor may be mounted to a crank arm. Assuch, the shift zone may be initiated upon sensing of the crank armportion of the sensor, as this orientation may provide indication thatthe crank arms have reached optimal shifting position when sensed.

The determining of whether the bicycle is moving, the determining ofwhether the bicycle is being pedaled, and the causing of the assistmotor of the bicycle to provide power to the drive train of the bicyclefor the electronic shifting of the bicycle may be part of a mode ofoperation of the bicycle. The processor may initiate the mode ofoperation of the bicycle based on, for example, sensor data (e.g., whenthe bicycle is determined to be moving and free of pedaling) and/or userinput (e.g., interaction with one or more buttons at the handlebars).

In one embodiment, when in full automatic mode, the rider may stillcommand a shift from a control device (e.g., a shifter). When a ridercommanded shift occurs, the automatic shifting functions described aboveare disabled for a configurable period of time to allow the rider tonegotiate a section of riding that necessitated manual override. If therider commands a shift while not pedaling, the assist motor (e.g., theassist motor 140) may activate to facilitate completion of the shift.

In one variant of the full automatic mode, an automatic only if coastingmode, may be initiated by the processor automatically or in response touser input. In the automatic only if coasting mode, the automaticshifting discussed above only runs if the rider is not pedaling. Thismay be desirable to a rider riding aggressively so that the rider doesnot experience shock through the pedals of the bicycle resulting from ashift under a high load. While coasting, the derailleur shifts throughgears to match changing wheel speed so that when the rider resumespedaling, the rider is in a desirable gear.

In another mode, the motoshift only mode, the derailleur is onlyshifting gears in response to user input (e.g., commands) at, forexample, the control device. If the rider commands a shift while notpedaling, the assist motor may activate to facilitate completion of theshift.

The full automatic mode, the automatic only if coasting mode, and themotoshift only mode may also work with a cable actuated derailleur thatis controlled by a motorized cable pulling device. Motor assistedshifting while not pedaling may be triggered by a non-electronicallyactuated shifting system that is able to communicate the shifting eventto the e-bike system.

There are a number of operational states of a bicycle in which it isundesirable for the bicycle to attempt automatic shifting. For example,it is undesirable for the bicycle to attempt automatic shifting when thebicycle is being serviced in a stand, when the bicycle is laying on aside, when a user is walking alongside the bicycle, and when the bicycleis at rest. Preconditions for shifting may thus be provided.

For the safety of the user, running a motor (e.g., the assist motor) tocomplete a shift when the rider is not pedaling may only occur if thebicycle is being ridden. If the bicycle is in a maintenance stand orbeing pushed/transported by hand, the automatic shifting function shouldnot execute, so that a body part or piece of clothing is not caught inthe drivetrain or wheel spokes. During maintenance, a mechanic may turnthe cranks and shift the derailleur to make adjustments or diagnoseissues. The spinning wheel and crank may trigger the automatic shifting(e.g., with the assist motor).

Any time the bicycle stops moving (e.g., wheel speed<=0), the automaticshifting with the assist motor may also be disabled. Any time thebicycle starts moving, the automatic shifting with the assist motorremains disabled until the rider is detected. Automatic shifting doesnot constitute a risk to the rider and may always be enabled, regardlessof whether the bicycle is being ridden, maintained, or transported;however, a specific implementation of automatic shifting may disable theautomatic shifting (e.g., with or without the assist motor) until therider detection algorithm is satisfied.

After the bicycle starts moving, the processor begins recording crankspeed and rider input torque at the cranks. The processor maycontinuously buffer crank torque and speed data for a rolling timeperiod representing an immediate history of the drivetrain and determinean average power currently being input into the bike. In one embodiment,the time period this buffered data represents is 1 to 5 seconds. Othertime periods may be used.

The processor continuously calculates the rider input power (e.g.,torque multiplied by speed) averaged over this time period. If thebicycle is in a maintenance stand, the rear wheel of the bicycle isunable to react to any large torque input from the cranks, so a maximumaverage power over a number of seconds is very low, only coming from aninertia of the rear wheel and frictions in the drivetrain system. When abicycle is being ridden, the rear wheel will react to torque from thecranks as the bicycle is pedaled at a rate many times that when pedaledin a maintenance stand. The current average power input to the cranksmay be compared to a threshold power level that may only be achieved bya bicycle being normally ridden.

Once the average power has exceeded the threshold level, the automaticshifting with the assist motor may be enabled. A bicycle may come to astop as the rider dismounts the bike, so once the input powerrequirement is satisfied, the automatic shifting with the assist motormay safely remain enabled until the bicycle wheel speed is zero. When arider comes to a stop, the automatic shifting with the assist motor isdisabled; if the rider resumes riding from a stop, the average inputpower requirement is to be satisfied again. Typically, when pedaling abike from a stopped position, a large power input is required toaccelerate the bike, such that the requirements discussed above may bequickly satisfied. The time period over which the crank torque and crankspeed are recorded may be long enough to prevent false detections butshort enough to enable the automatic shifting with the assist motor asquickly as possible.

As discussed above, both wheels may include at least parts of wheelspeed sensors (e.g., wheel speed sensors 306). If the wheel speedsensors do not report a same or similar speed (e.g., within 0.1 RPM),this is a strong indication that the bicycle is being pedaled in a standand the method described above should not shift the derailleur orcommand the motor to overdrive. There may be exceptions to this if themethod described above is being evaluated in a stand. To accommodatethis, the control system (e.g., the control system 300) may be put intoan override mode to allow cruise control to run, even if the controlsystem believes the bicycle is in a work stand. This override mode maybe enabled through the e-bike interface, a mode selecting unit of thedrivetrain, a mobile device application, or a button interaction withthe derailleur.

FIG. 7 is a flowchart of another embodiment of a method forelectromechanical control of components of a bicycle (e.g., the bicycle100). As presented in the following sections, the acts may be performedusing any combination of the components indicated in previous figures.For example, the following acts may be performed by at least somecomponents of the control system 300, as well as additional or othercomponents. In an embodiment, the acts may be performed by, for example,the rear derailleur 138, the e-bike controller 302, the power assistdevice 140, the one or more sensors, or any combination thereof.Additional, different, or fewer acts may be provided. The acts areperformed in the order shown or in other orders. The acts may berepeated.

In act 700, a processor receives first sensor data from a first sensorof the bicycle. For example, receiving the first sensor data from thefirst sensor includes receiving first wheel speed data from a firstwheel speed sensor (e.g., a front wheel speed sensor). The first wheelspeed data represents a wheel speed of a first wheel (e.g., the frontwheel) of the bicycle.

In one embodiment, receiving the first sensor data from the first sensorincludes one of receiving bicycle orientation data from an orientationsensor of the electric bicycle, receiving first wheel speed data from afirst wheel speed sensor of the electric bicycle, receiving second wheelspeed data from a second wheel speed sensor of the electric bicycle,receiving crank speed data from a cadence sensor of the electricbicycle, receiving strain data from a strain gauge of the electricbicycle, and receiving acceleration data from an accelerometer, agyroscope, or a combination thereof. In another example, receiving thefirst sensor data from the first sensor includes receiving strain datafrom a strain gauge of a crank arm, a frame, a handlebar, or a seat ofthe electric bicycle.

In act 702, the processor receives second sensor data from a secondsensor of the bicycle. For example, receiving the second sensor datafrom the second sensor includes receiving second wheel speed data from asecond wheel speed sensor (e.g., a back wheel speed sensor). The secondwheel speed data represents a wheel speed of a second wheel (e.g., theback wheel) of the bicycle.

In one embodiment, receiving the second sensor data from the secondsensor comprises another of receiving bicycle orientation data from anorientation sensor of the electric bicycle, receiving first wheel speeddata from a first wheel speed sensor of the electric bicycle, receivingsecond wheel speed data from a second wheel speed sensor of the electricbicycle, receiving crank speed data from a cadence sensor of theelectric bicycle, receiving strain data from a strain gauge of theelectric bicycle, and receiving acceleration data from an accelerometer,a gyroscope, or a combination thereof. For example, receiving the secondsensor data from the second sensor includes receiving first wheel speeddata from a first wheel speed sensor of the electric bicycle orreceiving second wheel speed data from a second wheel speed sensor ofthe electric bicycle.

In act 704, the processor identifies, based on the first sensor data andthe second sensor data, whether the bicycle is supported, such that awheel of the bicycle is drivable without translation of the bicycle(e.g., the bicycle is supported off of the ground, such as by a stand; arider engagement status). In one embodiment, the identifying of whetherthe bicycle is supported in such a way includes comparing, by theprocessor, the first wheel speed to the second wheel speed. For example,the processor may compare the first wheel speed to the second wheelspeed by calculating a difference between the first wheel speed and thesecond wheel speed. The processor compares the calculated difference toa predetermined difference (e.g., 3 RPM).

In act 706, the processor prevents movement of an electrically poweredcomponent of the bicycle based on the identifying. For example, movementof the electrically powered component may be prevented based on thecomparison of the first wheel speed to the second wheel speed. In otherwords, when the calculated difference is greater than the predetermineddifference (e.g., greater than 3 RPM), the processor prevents movementof the electrically powered component.

The prevention by the processor in act 706 may be overridden with a userinput. For example, the processor may receive a user input or a signalgenerated by a user input (e.g., user interaction with one or morebuttons at the handlebars), and may allow the movement of electricallypowered component of the electric bicycle (e.g., actuate a motor) basedon, for example, the received user input.

In one embodiment, a number of sensors may be used to positivelydetermine if the bicycle is actively being ridden, is in work stand, oris being walked. The sensors may include: one or more pressure sensorsin the saddle and configured to detect rider weight; strain gauges inone of the crank arms or a bottom bracket to detect torque from legs ofthe rider; and/or strain gauges in grips or the handlebar configured todetect engagement with the handlebar by the rider.

If the rider crashes or the bike is set on a side, and one or more ofthe wheels are still turning, the method described above may recognizethis as valid input and attempt to shift or run the motor overdrivefunction. To prevent this, an accelerometer in the rear derailleur maybe used to determine orientation of the bicycle. While the derailleur isawake, the derailleur may take accelerometer readings at intervals(e.g., frequent intervals such as every 100 ms). By averaging thesereadings over a finite history (e.g., as a low pass filter), theorientation of the bicycle may be determined. The accuracy and responsetime of the orientation sensing functions may be increased by also usinga gyroscope to complement the accelerometer data. The orientationsensors and functions may also exist in the e-bike system, a shifter, anelectronic seatpost, or a stand-alone device used for detectingorientation.

The combination of wheel speed, crank cadence, and rider torque may beused in combination to determine if the bicycle is being lightly pedaledin a work stand or is actively being ridden. If the wheel speedaccelerates from zero to some significant value that would trigger anautomatic shift, the amount of energy input by the rider to achieve thisspeed may be used to determine if the bicycle is actively being riddenby the integral Σ₀ ^(t_elapsed)τ(t)*ω(t)dt. If the energy used toaccelerate the rider and bicycle is below a predetermined threshold, itmay be inferred that the bicycle may be being pushed or pedaled in astand. This assumption may not be valid if the bicycle starts movingdown an incline. An accelerometer or other orientation-sensing devicemay be used to supplement this decision. The processor may calculate theamount of energy and compare the calculated energy to the predeterminedthreshold. The predetermined threshold may be set based on experimentaldata.

If the bicycle is being pedaled in a bicycle stand, the wheelacceleration would not correlate with acceleration observed by aninertial measurement (IMU) unit or accelerometer. If sufficient wheelspeed acceleration to IMU acceleration correlation is not satisfied, theprocessor may disable the automatic shifting functions.

FIG. 8 is a flowchart of another embodiment of a method forelectromechanical control of components of a bicycle (e.g., the bicycle100). As presented in the following sections, the acts may be performedusing any combination of the components indicated in previous figures.For example, the following acts may be performed by at least somecomponents of the control system 300, as well as additional or othercomponents. In an embodiment, the acts may be performed by, for example,the rear derailleur 138, the e-bike controller 302, the power assistdevice 140, the one or more sensors, or any combination thereof.Additional, different, or fewer acts may be provided. The acts areperformed in the order shown or in other orders. The acts may berepeated.

In act 800, a processor that is in communication with an electricallypowered component of the bicycle identifies sensor data. The sensor dataidentifies a state of the bicycle. The electrically powered componentmay be any number of electrically powered components of the bicycleincluding, for example, an assist motor for an ebike or a derailleurmotor for automatic shifting. In one embodiment, the method is appliedto more than one electrically powered component in parallel. Forexample, the method may stop or prevent movement of both the assistmotor and the motor of the derailleur.

In one embodiment, identifying the sensor data includes receiving, bythe processor, orientation data from one or more orientation sensors ofthe bicycle. For example, the processor may receive orientation datafrom at least one accelerometer. The processor may receive theorientation data from the at least one accelerometer continuously or ata predetermined interval.

Alternatively or additionally, identifying the sensor data includesreceiving wheel speed data from one or more wheel speed sensors of thebicycle, receiving crank speed data from one or more cadence sensors,receiving strain data from one or more strain gauges of the bicycle,receiving acceleration data from one or more accelerometers and/or oneor more gyroscopes, or any combination thereof.

In act 802, the processor determines a rider engagement status based onthe identified sensor data. For example, the processor determines anorientation of the bicycle based on the received orientation data anddetermines whether a user is riding the bicycle based on the determinedorientation of the bicycle.

In one embodiment, determining the orientation of the bicycle includesthe processor averaging a portion of the received orientation data(e.g., for a predetermined time period such as 0.5 s, 1.0 s, 2.0 s) anddetermining the orientation of the bicycle based on the averaged portionof the received orientation data.

In one embodiment, the processor determines whether the bicycle issubject to a predetermined deacceleration as the rider engagement statusbased on the identified sensor data. For example, the sensor data may beacceleration data from one or more accelerometers and/or gyroscopes ofthe bicycle, and the processor may calculate a deacceleration based onthe sensor data. The processor may compare the calculated deaccelerationto the predetermined deacceleration and identify the rider engagementstatus based on the comparison.

In act 804, the processor stops or prevents movement of the electricallypowered component based on the determined rider engagement status. Inone embodiment, movement of the electrically powered component isstopped or prevented when the determined rider engagement statusindicates the user is not riding the bicycle. In another embodiment,movement of the electrically powered component is stopped or preventedwhen the processor determines the bicycle is subject to thepredetermined deacceleration. Other rider engagement statuses may bedetermined and used for act 804.

FIG. 9 is a flowchart of yet another embodiment of a method forelectromechanical control of components of a bicycle (e.g., the bicycle100). As presented in the following sections, the acts may be performedusing any combination of the components indicated in previous figures.For example, the following acts may be performed by at least somecomponents of the control system 300, as well as additional or othercomponents. In an embodiment, the acts may be performed by, for example,the rear derailleur 138, the e-bike controller 302, the power assistdevice 140, the one or more sensors, or any combination thereof.Additional, different, or fewer acts may be provided. The acts areperformed in the order shown or in other orders. The acts may berepeated.

In act 900, a processor determines whether the bicycle is moving basedon first sensor data received from a first sensor of the bicycle. Forexample, the processor receives, as the first sensor data, wheel speeddata from a wheel speed sensor of the bicycle.

In act 902, when the bicycle is determined to be moving, the processordetermines a rider engagement status. The determining of the riderengagement status includes identifying, by the processor, second sensordata from a second sensor of the bicycle and identifying, by theprocessor, third sensor data from a third sensor of the bicycle. Forexample, the processor receives, as the second sensor data, crank straindata from a strain gauge, for example, at a crank of the bicycle, andreceives, as the third sensor data, crank speed data from a crank speedsensor.

The processor determines the rider engagement status based on the secondsensor data and the third sensor data. For example, the processorcalculates an input power based on the received crank strain data andthe received crank speed data and compares the calculated input power toa predetermined threshold power (e.g., indicating the bicycle is beingpedaled by a rider, not by hand). The processor may determine the riderengagement status based on the comparison of the calculated input powerto the predetermined threshold power. For example, the processor maydetermine the rider engagement status as the bicycle being ridden by theuser when the calculated input power is greater than the predeterminedthreshold power.

In act 904, when the determined rider engagement status indicates thebicycle is being ridden, the processor enables use of an assist motorfor the electronic shifting of the bicycle. In one embodiment, when thedetermined rider engagement status is that the bicycle is not moving(e.g., without motion), the processor disables the use of the assistmotor for the electronic shifting of the bicycle.

In one embodiment, the method further includes the processor identifyinga motor current of the assist motor. For example, the processor mayidentify (e.g., receive) motor current data from one or more sensors ofthe assist motor. The processor compares the identified motor current ofthe assist motor to a predetermined maximum motor current. Based on thecomparison, the processor disables the use of the assist motor for theelectronic shifting of the bicycle when the identified motor current ofthe assist motor is greater than the predetermined maximum motorcurrent.

Limiting the motor current limits a maximum torque output of the motorto prevent injury or damage if a foreign object (e.g., a stick orfinger) is caught in the drivetrain. The automatic shifting (e.g., withor without the assist motor) may remain disabled until the rider isagain detected.

Modern cassettes provide an extremely wide gear ratio range so that therider may easily pedal up steep hills as well as effectively pedal downhills or with a strong tailwind. When a rider begins pedaling from astandstill, it is desirable to be in a low gear but typically not thelowest gear, depending on the gears installed on bike. If the rider isin a very large cog as the bicycle accelerates from a stop on flatground, the rider will quickly be at an uncomfortably high pedalingcadence. In one embodiment, the derailleur has a configurable minimumcog that the automatic shifting method may not shift beyond as the riderdecelerates without pedaling (e.g., coasts) to a low speed or stop.

It is still necessary that the rider be able to access the largestcog(s) when needed (e.g., climbing a steep hill). If the rider isslowing down such that the automatic shifting would select a cog belowthe minimum configured cog and the user is still pedaling (e.g., notcoasting), it may be assumed that there is a functional need for a lowergear and the derailleur may shift. The pedaling load (e.g., bottombracket torque from rider) may provide an additional input to determineif the bicycle should shift to a lower gear than the configured minimum.The method may require that the rider be pedaling and be applying torqueabove a minimum threshold to shift to a lower gear than the configuredminimum.

When the rider resumes pedaling from a stop (e.g., in a gear above thelargest cog) the automatic shifting method attempts to shift down toachieve the target cadence, defeating the purpose of a minimum cog. Toprevent this, the processor may calculate an acceleration of the bicyclefrom a derivative of the speed sensor data. If the bicycle isaccelerating above a predetermined threshold, and the target gear is alower gear than the current gear and within a threshold number of gearsfrom the current gear, the processor may ignore the downshift.Alternatively or additionally, the automatic shifting method may not bereinitiated for a short time period after start of motion from stop(e.g., two seconds).

In one embodiment, the automatic shifting method is not able to shift toa lowest gear unless the bicycle is riding up an incline (e.g., unlessthe processor determines the bicycle is riding up the incline). Forexample, the bicycle may include an IMU or an accelerometer configuredto identify when the bicycle is riding up an incline. The automaticshifting method may limit the lowest gear the automatic shifting methodmay select, and the processor may temporarily remove the limit when theIMU or the accelerometer identifies the incline. Time rear derailleurshift execution with crank position.

FIG. 10 is a flowchart of an embodiment of a method forelectromechanical control of components of a bicycle (e.g., the bicycle100). As presented in the following sections, the acts may be performedusing any combination of the components indicated in previous figures.For example, the following acts may be performed by at least somecomponents of the control system 300, as well as additional or othercomponents. In an embodiment, the acts may be performed by, for example,the rear derailleur 138, the e-bike controller 302, the power assistdevice 140, the one or more sensors, or any combination thereof.Additional, different, or fewer acts may be provided. The acts areperformed in the order shown or in other orders. The acts may berepeated.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus and systemsthat utilize the structures or methods described herein. Many otherembodiments may be apparent to those of skill in the art upon reviewingthe disclosure. Other embodiments may be utilized and derived from thedisclosure, such that structural and logical substitutions and changesmay be made without departing from the scope of the disclosure.Additionally, the illustrations are merely representational and may notbe drawn to scale. Certain proportions within the illustrations may beexaggerated, while other proportions may be minimized. Accordingly, thedisclosure and the figures are to be regarded as illustrative ratherthan restrictive.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the invention or of what may beclaimed, but rather as descriptions of features specific to particularembodiments of the invention. Certain features that are described inthis specification in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable sub-combination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a sub-combination or variation of a sub-combination.

Similarly, while operations and/or acts are depicted in the drawings anddescribed herein in a particular order, this should not be understood asrequiring that such operations be performed in the particular ordershown or in sequential order, or that all illustrated operations beperformed, to achieve desirable results. In certain circumstances,multitasking and parallel processing may be advantageous. Moreover, theseparation of various system components in the embodiments describedabove should not be understood as requiring such separation in allembodiments, and it should be understood that any described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

One or more embodiments of the disclosure may be referred to herein,individually and/or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any particular invention or inventive concept. Moreover,although specific embodiments have been illustrated and describedherein, it should be appreciated that any subsequent arrangementdesigned to achieve the same or similar purpose may be substituted forthe specific embodiments shown. This disclosure is intended to cover anyand all subsequent adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, are apparent to those of skill in the artupon reviewing the description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b) and is submitted with the understanding that it will not be usedto interpret or limit the scope or meaning of the claims. In addition,in the foregoing Detailed Description, various features may be groupedtogether or described in a single embodiment for the purpose ofstreamlining the disclosure. This disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter may be directed toless than all of the features of any of the disclosed embodiments. Thus,the following claims are incorporated into the Detailed Description,with each claim standing on its own as defining separately claimedsubject matter.

It is intended that the foregoing detailed description be regarded asillustrative rather than limiting and that it is understood that thefollowing claims including all equivalents are intended to define thescope of the invention. The claims should not be read as limited to thedescribed order or elements unless stated to that effect. Therefore, allembodiments that come within the scope and spirit of the followingclaims and equivalents thereto are claimed as the invention.

What is claimed is:
 1. A method for controlling electronic shifting of abicycle, the method comprising: determining, by a processor, whether thebicycle is moving; when the bicycle is determined to be moving,determining, by the processor, whether the bicycle is being pedaled; andafter the bicycle is determined to be moving and be free of pedaling,causing an assist motor of the bicycle to provide power to a drive trainof the bicycle for the electronic shifting of the bicycle, whereincausing the assist motor of the bicycle to provide power to the drivetrain of the bicycle for the electronic shifting of the bicyclecomprises causing the assist motor of the bicycle to provide power tothe drive train of the bicycle for a period of time such that a singlegear is shifted.
 2. The method of claim 1, wherein determining whetherthe bicycle is moving comprises: receiving, by the processor, wheelspeed data from a wheel speed sensor of the bicycle; and determiningwhether the bicycle is moving based on the received wheel speed data. 3.The method of claim 1, wherein determining whether the bicycle is beingpedaled comprises: receiving, by the processor, crank data from one ormore crank sensors of the bicycle; and determining whether the bicycleis being pedaled based on the received crank data.
 4. The method ofclaim 3, wherein receiving crank data from the one or more crank sensorscomprises receiving crank cadence data from a cadence sensor of thebicycle, receiving crank angular position data from an angular positionsensor of the bicycle, receiving crank angular velocity data from anangular velocity sensor of the bicycle, or any combination thereof. 5.The method of claim 4, further comprising: when the bicycle isdetermined as being pedaled: estimating, by the processor, continuouslyor at a predetermined interval, an angular position of the crank armbased on the received crank data; causing the assist motor of thebicycle to provide power to the drive train of the bicycle for theelectronic shifting of the bicycle when the estimated angular positionof the crank arm matches a predetermined angular position of the crankarm.
 6. The method of claim 5, wherein the predetermined angularposition of the crank arm corresponds to a vertical position of thecrank arm.
 7. The method of claim 1, wherein the determining of whetherthe bicycle is moving, the determining of whether the bicycle is beingpedaled, and the causing of the assist motor of the bicycle to providepower to the drive train of the bicycle for the electronic shifting ofthe bicycle are part of a mode of operation of the bicycle, and whereinthe method further comprises initiating, by the processor, the mode ofoperation of the bicycle.
 8. The method of claim 7, wherein the methodfurther comprises receiving a user input, and wherein initiating themode of operation of the bicycle comprises initiating the mode ofoperation of the bicycle based on the received user input.
 9. The methodof claim 7, wherein initiating the mode of operation of the bicyclecomprises automatically initiating the mode of operation of the bicyclewhen the bicycle is determined to be moving and the bicycle isdetermined to be free of pedaling.
 10. The method of claim 7, furthercomprising: receiving, by the processor, wheel speed data from a wheelspeed sensor of the bicycle continuously or at a predetermined interval;and after the mode of operation of the bicycle is initiated, controllingthe assist motor for the electronic shifting of the bicycle based on thereceived wheel speed data.
 11. A controller for a bicycle, thecontroller comprising: a processor configured to: determine whether thebicycle is moving; when the bicycle is determined to be moving,determine whether the bicycle is being pedaled; and after the bicycle isdetermined to be moving and be free of pedaling, cause an assist motorof the bicycle to provide power to a drive train of the bicycle forelectronic shifting of the rear derailleur, wherein the processor isfurther configured to estimate, continuously or at a predeterminedinterval, an angular position of the crank arm based on the receivedcrank data, wherein the causing of the assist motor of the bicycle toprovide power to the drive train of the bicycle for electronic shiftingof the rear derailleur comprises causing the assist motor of the bicycleto provide power to the drive train of the bicycle for the electronicshifting of the rear derailleur when the estimated angular position ofthe crank arm matches a predetermined angular position of the crank arm.12. The controller of claim 11, wherein the determination of whether thebicycle is moving comprises: receipt, by the processor, of wheel speeddata from a wheel speed sensor of the bicycle; and determination ofwhether the bicycle is moving based on the received wheel speed data.13. The controller of claim 11, wherein the determination of whether thebicycle is being pedaled comprises: receipt, by the processor, of crankdata from one or more crank sensors of the bicycle, the crank datarepresenting a crank speed, a crank cadence, or the crank speed and thecrank cadence of a crank arm of the bicycle; and determination ofwhether the bicycle is being pedaled based on the received crank data.14. The controller of claim 11, wherein the predetermined angularposition of the crank arm corresponds to a vertical position of thecrank arm.
 15. A method for controlling electronic shifting of abicycle, the method comprising: receiving, by a processor, wheel speeddata from a wheel speed sensor of the bicycle; determining, by theprocessor, whether the bicycle is moving based on the received wheelspeed data; when the bicycle is determined to be moving: identifying, bythe processor, crank data representing a crank speed, a crank cadence,or the crank speed and the crank cadence of a crank arm of the bicycle;and determining whether the bicycle is being pedaled based on theidentified crank data; and after the bicycle is determined to be movingand be free of pedaling, causing an assist motor of the bicycle toprovide power to a drive train of the bicycle for the electronicshifting of the bicycle, when the bicycle is determined as beingpedaled: estimating, by the processor, continuously or at apredetermined interval, an angular position of the crank arm based onthe received crank data; and causing the assist motor of the bicycle toprovide power to the drive train of the bicycle for the electronicshifting of the bicycle when the estimated angular position of the crankarm matches a predetermined angular position of the crank arm.
 16. Themethod of claim 15, wherein identifying the crank data comprisesreceiving, by the processor, the crank data from one or more cranksensors of the bicycle.
 17. The method of claim 15, wherein receivingwheel speed data from the wheel speed sensor of the bicycle comprisesreceiving wheel speed data from the wheel speed sensor of the bicyclecontinuously or at a predetermined interval, and wherein the methodfurther comprises, after causing the assist motor of the bicycle toprovide power to the drive train of the bicycle for the electronicshifting of the bicycle, controlling the assist motor for the electronicshifting of the bicycle based on the received wheel speed data.